# python列表不像java，可以存放不同的类型。
from chap10.module_demo_typing import printClass

# 创建方式一
list1 = ['hello', 'world', 1, 10.5]
print(list1)

# 创建方式二
list2 = list('world')
print(list2)

# 创建方式三
list3 = range(1, 20, 3)
print(list3)

# 列表是序列的一种，所有对序列的操作符，运算符，函数对列表一样有用
# print(list1+list2+list3)

# print(list1*3)
# print(len(list3))
# print(max(list3))
# print(min(list3))

############################################### 列表的删除操作
# list4 = [1, 2, 3, 4, 5]
# # 删除整个数组
# del list4
# # print(list4)
#
#############################################列表循环
# # for循环遍历列表
list5 = ['hello', 'world', 'python']
# for item in list5:
#     print(item)
#
# print('-' * 10)
#
# # 使用for循环，range函数
# for i in range(0, len(list5)):
#     print(i, list5[i])
#
# print('-' * 10)
#
# for index, item in enumerate(list5):
#     # index 是序号，不是索引
#     print(index, item)
# print('-' * 10)
#
# # 手动修改序号的起始值
# for index, item in enumerate(list5, start=2):
#     print(index, item)

###################################### 列表操作
# print('原列表', list5, id(list5))
#
# # 增加元素
# list5.append('java')
# print('append 后', list5, id(list5))
#
# # pop，弹出一个元素。
# a = list5.pop(1)
# print(a)
# print('pop 后', list5, id(list5))
#
# # 清楚列表所有的元素
# list5.remove('python')
# print('remove python 后', list5, id(list5))
#
# # 列表按照下标替换元素
# list5[0] = 'mysql'
# print('替换元素后', list5, id(list5))
#
# # 清除所有的元素
# list5.clear()
# print('clear 后', list5, id(list5))



#######################################列表排序
list6=[5,34,2,44,3,4,56,13,7]
# 升序
# list6.sort()
# print(list6)
#
# # 降序
# list6.sort(reverse=True)
# print(list6)

# 内置函数排序
# 默认升序
# list6 = sorted(list6)
# print(list6)
#
# # 降序
# list6 = sorted(list6,reverse=True)
# print(list6)


#############################################列表生成式
list7=[item for item in range(1,11)]
print("list7:",list7)
#
# list8=[item * item for item in range(1,11)]
# print(list8)
#
# # list9=[random.randit(1,100) for _ in range(10)]
# # print(list9)
#
# # 从列表当中选择符合条件的元素组成新的列表
# list10=[i for i in range(10) if i%2 == 0]
# print(list10)


################################################二维列表
list11=[
    [100,101,102],
    [200,201,202],
    [300,301,302],
    [400,401,402]
]
print(list11)

# 遍历二维列表使用双层for循环
for row in list11: # 行
    for item in row: # 列
        print(item,end='\t')
    print() # 换行

print('-'*40)

# 列表生成式生成一个4行5列的二维列表
list12=[[j for j in range(5)] for i in range(4)]
print(list12)

# list13 = [str(item,1) for item in range(5)]
# print(list13)